package com.ivc.rule.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.cs.framework.common.util.CommonUtils;
import com.cs.framework.jdbc.common.dao.CommonDao;
import com.ivc.rule.dto.base.ProductClassDto;
import com.ivc.rule.service.ProductClassService;

/**
 * 商品大类
 * 
 * @author hedongzhou
 * 
 */
@Service("productClassService")
public class ProductClassServiceImpl implements ProductClassService {

	@Resource
	private CommonDao commonDao;

	/**
	 * 查询商品大类
	 * 
	 * @param productClass
	 *            商品大类编号
	 * @return
	 */
	public ProductClassDto get(String productClass) {
		return commonDao.getById(ProductClassDto.class, productClass);
	}

	/**
	 * 查询商品大类总数
	 * 
	 * @param productClassDto
	 * @return
	 */
	public int count(ProductClassDto productClassDto) {
		return commonDao.count("ProductClass.query", productClassDto);
	}

	/**
	 * 查询商品大类列表
	 * 
	 * @param productClassDto
	 * @return
	 */
	public List<ProductClassDto> query(ProductClassDto productClassDto) {
		return commonDao.selectList("ProductClass.query", productClassDto, productClassDto, ProductClassDto.class);
	}

	/**
	 * 新增商品大类
	 * 
	 * @param productClassDto
	 * @return
	 */
	public ProductClassDto save(ProductClassDto productClassDto) {
		ProductClassDto entity = get(productClassDto.getProductClass());
		if (entity != null) {
			CommonUtils.throwRun("该商品大类编号【" + productClassDto.getProductClass() + "】已存在");
		}

		return commonDao.save(productClassDto);
	}

	/**
	 * 修改商品大类
	 * 
	 * @param productClassDto
	 * @return
	 */
	public ProductClassDto update(ProductClassDto productClassDto) {
		ProductClassDto entity = get(productClassDto.getProductClass());
		if (entity == null) {
			CommonUtils.throwRun("未查询到相关的商品大类信息");
		}

		entity.setDescription(productClassDto.getDescription());

		return commonDao.update(entity);
	}

}
